package org.itboys.result;

/**
 * 接口返回封装
 * @author ChenJh
 *
 */
public class ResultHelper {

	/**
	 * 接口成功后返回的对象
	 * @param t
	 * @return
	 */
	public static <T> Result<T> getSuccessResult(T t) {
		Result<T> result = new Result<>();
		result.setOk(true);
		result.setMessage("success");
		result.setResult(t);
		return result;
	}
	
	/**
	 * 只需要返回成功或失败 不需要返回值的
	 * @return
	 */
	public static <T> Result<T> getNoReturnSuccessResult() {
		return getSuccessResult(null);
	} 
	
	/**
	 * 接口失败后返回的对象
	 * @param code
	 * @param message
	 * @return
	 */
	public static <T> Result<T> getFailResult(int code, String message) {
		Result<T> result = new Result<>();
		result.setOk(false);
		result.setCode(code);
		result.setMessage(message);
		return result;
	}
	
	/**
	 * 接口异常返回的对象
	 * @return
	 */
	public static <T> Result<T> getExceptionResult() {
		return getFailResult(ErrorConstant.EXCEPTION_CODE, ErrorConstant.EXCEPTION_MESSAGE);
	}
	
	/**
	 * 接口异常返回不存在的对象
	 * @return
	 */
	public static <T> Result<T> getObjectNotExistResult() {
		return getFailResult(ErrorConstant.OBJECT_NOT_EXIST, ErrorConstant.OBJECT_NOT_EXIST_MESSAGE);
	}
	

}
